An ever-increasing number of modern computer systems have multiple processors. As examples, a typical modern computer system may have multiple processing cores in a multi-core microprocessor package, as well as possibly multiple (multiple core or single core) microprocessor packages. Additionally, a typical modern computer system may be formed from multiple microprocessor packages in a single “box” or multiple microprocessor packages that are distributed in rack-mounted units.
Due to the number of processors in a modern computer system, it is increasingly possible and attractive to co-locate all components of a large complex application on a single multiple-processor host. However, the trend toward increasing the numbers of processors presents challenges in understanding how the application performs on the computer system. Therefore, challenges exist in monitoring the performance of the application and evaluating the benefits that may be gained by expanding the number of processors of the computer system.